﻿using BLL;
using DTO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BONGDA
{
    public partial class frmAdmin : Form
    {
        public frmAdmin()
        {
            InitializeComponent();
        }

        private void frmAdmin_Load(object sender, EventArgs e)
        {
            // Load phan quyen
            DataTable tablePQ = PhanQuyen_BLL.SelectAll();
            dgvPhanQuyen.DataSource = tablePQ;
            //dgvPhanQuyen.DataSource = PhanQuyen_BLL.SelectAll();
            txtTenPhanQuyen.Text = Convert.ToString(tablePQ.Rows[0]["PhanQuyen"]);
            chePhanQuyen.Checked = Convert.ToBoolean(tablePQ.Rows[0]["QuyenPhanQUyen"]);
            cheQuanLy.Checked = Convert.ToBoolean(tablePQ.Rows[0]["QuanLy"]);
            cheQuyDinh.Checked = Convert.ToBoolean(tablePQ.Rows[0]["ThayDoiQuyDinh"]);

            // load combobox
            for (int i = 0; i < tablePQ.Rows.Count; i++)
            {
                cboPQ.Items.Add(Convert.ToString(tablePQ.Rows[i]["PhanQuyen"]));
            }
            // Load ql nguoi dung
            DataTable tableQL = TaiKhoan_BLL.SelectAll();
            dgvQuanLy.DataSource = tableQL;
            //dgvQuanLy.DataSource = TaiKhoan_BLL.SelectAll();
            txtTK.Text = Convert.ToString(tableQL.Rows[0]["TenTaiKhoan"]);
            txtMK.Text = Convert.ToString(tableQL.Rows[0]["MatKhau"]);
            cboPQ.SelectedItem = Convert.ToString(tableQL.Rows[0]["PhanQuyen"]);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmLogin frm = new frmLogin();
            frm.ShowDialog();
            this.Close();
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmLogin frm = new frmLogin();
            frm.ShowDialog();
            this.Close();
        }

        private void dgvQuanLy_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                if (dgvQuanLy.SelectedRows.Count > 0)
                {
                    // Thông tin đội bóng
                    TaiKhoan_DTO dto = TaiKhoan_BLL.SelectByTen(
                        Convert.ToString(dgvQuanLy.SelectedRows[0].Cells[0].Value));
                    txtTK.Text = Convert.ToString(dgvQuanLy.SelectedRows[0].Cells[0].Value);
                    txtMK.Text = Convert.ToString(dgvQuanLy.SelectedRows[0].Cells[1].Value);
                    cboPQ.SelectedItem = Convert.ToString(dgvQuanLy.SelectedRows[0].Cells[2].Value);
                }
            }
            catch (Exception)
            {
            }      
        }

        private void dgvPhanQuyen_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                if (dgvPhanQuyen.SelectedRows.Count > 0)
                {
                    // Thông tin đội bóng
                    PhanQuyen_DTO dto = PhanQuyen_BLL.SelectByTen(
                        Convert.ToString(dgvPhanQuyen.SelectedRows[0].Cells[0].Value));
                    txtTenPhanQuyen.Text = Convert.ToString(dgvPhanQuyen.SelectedRows[0].Cells[0].Value);
                    chePhanQuyen.Checked = Convert.ToBoolean(dgvPhanQuyen.SelectedRows[0].Cells[1].Value);
                    cheQuanLy.Checked = Convert.ToBoolean(dgvPhanQuyen.SelectedRows[0].Cells[2].Value);
                    cheQuyDinh.Checked = Convert.ToBoolean(dgvPhanQuyen.SelectedRows[0].Cells[3].Value);
                }
            }
            catch (Exception)
            {
            }      
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            if (this.txtTK.Text.ToString() == "" || this.txtMK.Text.ToString() == "")
            {
                MessageBox.Show("Điền tên tài khoản và mật khẩu!", "Thông báo",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Warning);
                return;
            }
            TaiKhoan_DTO dto = new TaiKhoan_DTO();
            dto.TenTaiKhoan = txtTK.Text;
            dto.MatKhau = txtMK.Text;
            dto.PhanQuyen = cboPQ.SelectedItem.ToString();
            try
            {
                TaiKhoan_BLL.Insert(dto); 
                dgvQuanLy.DataSource = TaiKhoan_BLL.SelectAll();
                MessageBox.Show("Thêm thành công", "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
            catch (Exception)
            {
                MessageBox.Show("Không thể thêm tài khoản này!", "Thông báo",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Warning);
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            if (this.txtTK.Text.ToString() == "" || this.txtMK.Text.ToString() == "")
            {
                MessageBox.Show("Điền tên tài khoản và mật khẩu!", "Thông báo",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Warning);
                return;
            }
            TaiKhoan_DTO dto = new TaiKhoan_DTO();
            dto.TenTaiKhoan = txtTK.Text;
            dto.MatKhau = txtMK.Text;
            dto.PhanQuyen = cboPQ.SelectedItem.ToString();
            try
            {
                TaiKhoan_BLL.Update(dto);
                dgvQuanLy.DataSource = TaiKhoan_BLL.SelectAll();
                MessageBox.Show("Sữa thành công", "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
            catch (Exception)
            {
                MessageBox.Show("Tài khoản này không thể chỉnh sữa!", "Thông báo",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Warning);
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                DialogResult kq;
                kq = MessageBox.Show("Xóa tài khoản này?", "Thông báo",
                MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (kq == DialogResult.OK)
                {
                    TaiKhoan_BLL.Delete(txtTK.Text);
                    dgvQuanLy.DataSource = TaiKhoan_BLL.SelectAll();
                    MessageBox.Show("Xóa thành công", "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Không xóa được", "Thông báo",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Warning);
            }
        }
        //Them
        private void button3_Click(object sender, EventArgs e)
        {
            if (this.txtTenPhanQuyen.Text.ToString() == "")
            {
                MessageBox.Show("Điền tên phân quyền!", "Thông báo",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Warning);
                return;
            }
            PhanQuyen_DTO dto = new PhanQuyen_DTO();
            dto.TenPQ = txtTenPhanQuyen.Text;
            dto.QuyenPhanQuyen = chePhanQuyen.Checked;
            dto.QuanLy = cheQuanLy.Checked;
            dto.ThayDoiQuyDinh = cheQuyDinh.Checked;
            try
            {
                PhanQuyen_BLL.Insert(dto);
                dgvPhanQuyen.DataSource = PhanQuyen_BLL.SelectAll();
                MessageBox.Show("Thêm thành công", "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
            catch (Exception)
            {
                MessageBox.Show("Không thể thêm phân quyền này!", "Thông báo",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Warning);
            }
        }
        // sua
        private void button2_Click(object sender, EventArgs e)
        {
            if (this.txtTenPhanQuyen.Text.ToString() == "")
            {
                MessageBox.Show("Điền tên phân quyền!", "Thông báo",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Warning);
                return;
            }
            PhanQuyen_DTO dto = new PhanQuyen_DTO();
            dto.TenPQ = txtTenPhanQuyen.Text;
            dto.QuyenPhanQuyen = chePhanQuyen.Checked;
            dto.QuanLy = cheQuanLy.Checked;
            dto.ThayDoiQuyDinh = cheQuyDinh.Checked;
            try
            {
                PhanQuyen_BLL.Update(dto);
                dgvPhanQuyen.DataSource = PhanQuyen_BLL.SelectAll();
                MessageBox.Show("Sữa thành công", "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
            catch (Exception)
            {
                MessageBox.Show("Tài khoản này không thể chỉnh sữa!", "Thông báo",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Warning);
            }
        }
        // xoa
        private void button4_Click(object sender, EventArgs e)
        {
            try
            {
                DialogResult kq;
                kq = MessageBox.Show("Xóa phân quyền này?", "Thông báo",
                MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (kq == DialogResult.OK)
                {
                    PhanQuyen_BLL.Delete(txtTenPhanQuyen.Text);
                    dgvPhanQuyen.DataSource = PhanQuyen_BLL.SelectAll();
                    MessageBox.Show("Xóa thành công", "Thông báo",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Không xóa được", "Thông báo",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Warning);
            }
        }
    }
}
